package de.mnit.basis.swt.element.steuer.rollbar;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;

import de.mnit.basis.daten.konstant.position.POSITION;
import de.mnit.basis.daten.konstant.position.POSITION_H;
import de.mnit.basis.fehler.Fehler;
import de.mnit.basis.swt.element.steuer.A_SWT_Steuer;

/**
 * @author Michael Nitsche
 */
public class SWT_TextEingabe extends A_SWT_Steuer<SWT_TextEingabe,Text> {

	public SWT_TextEingabe() {
		s1_Rahmen(true);
	}


	// FUNKTION

	public SWT_TextEingabe s1_Position(POSITION_H a) {
		PN_Erzeugt();
		Fehler.objekt.wenn_Null(a);
		if(a==POSITION.LINKS)  this.s1_Style(SWT.LEFT);
		if(a==POSITION.MITTE)  this.s1_Style(SWT.CENTER);
		if(a==POSITION.RECHTS) this.s1_Style(SWT.RIGHT);
		return this;
	}

	public void sText(String text) {
		Fehler.objekt.wenn_Null(text);
		swt().setText(text);
	}

	public void sVerdeckt() {
		swt().setEchoChar('*');
	}

	public void sNurLesbar(boolean b) {
		swt().setEditable(!b);
	}

	public void sFokus() {
		swt().setFocus();
	}

	// LESEN

	public String gText() {
		return swt().getText();
	}

	// EVENT

	public void eAenderung(Listener l) {
		swt().addListener(SWT.Modify, l);
	}

	public void eUeberpruefung(VerifyListener l) {
		swt().addVerifyListener(l);
	}

	public void eTasteEnter(final Listener l) {
		swt().addListener(SWT.KeyUp, new Listener(){
			public void handleEvent(Event e) {
				if(e.keyCode==13)
					l.handleEvent(e);
			}
		});
	}

	// ERZEUGEN

	protected int style3() {
		return SWT.SINGLE;  // SWT.MULTI ???
	}

	protected Text roh(Composite basis, int style) {
		return new Text(basis,style);
	}

	protected void init3() {}

}
